package util;

import java.io.IOException;
import java.io.Serializable;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedProperty;
import javax.faces.context.FacesContext;
import sesion.Sesion;
/**
 * Clase de la cual extienden todos los pagecode de  la aplicacion.
 * Manejan todas las comunes a todas las paginas 
 */
public class PageCodeGenerico implements Serializable {

    /**
     * Creates a new instance of PageCodeGenerico
     */
    @ManagedProperty("#{sesion}")
    private Sesion mi_sesion;
    private Calendar fHoy = new GregorianCalendar();

    public PageCodeGenerico() {
    }
    
    /**
     * Funcion que reedirecciona al index del sitio webinterno
     */
    public void redireccionarInterno() {
        try {
            FacesContext.getCurrentInstance().getExternalContext().redirect("paginasUsuario/index.xhtml");
        } catch (IOException ex) {
        }
    }

    /**Funcion que reedirecciona al login externo del sitio
     * 
     */
    public void redireccionarExterno() {
        try {
            FacesContext.getCurrentInstance().getExternalContext().redirect("login/login.xhtml");
        } catch (IOException ex) {
        }
    }
    
    public Sesion getMi_sesion() {
        return mi_sesion;
    }

    public void setMi_sesion(Sesion mi_sesion) {
        this.mi_sesion = mi_sesion;
    }

    /**
     * Setea un mensaje de informacion de faces recibe como parametro 
     * el mensaje
     * @param msg 
     */
    public void setearInfo(String msg) {
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, msg, null));
    }

    /**
     * Setea un mensaje de error. Recibe como parametro una exepcion.
     * @param e 
     */
    public void setearError(Exception e) {
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, e.getMessage(), e.getMessage()));
    }

    /**
     * Setea un mensaje de error . Recibe un string.
     * @param error 
     */
    public void setearError(String error) {
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, error, error));
    }
      public void setearAdvertencia(String error) {
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, error, error));
    }

    public Calendar getfHoy() {
        return fHoy;
    }

    public void setfHoy(Calendar fHoy) {
        this.fHoy = fHoy;
    }
}
